#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

//int main()
//{
//	int rmb = 20;
//	int temp = 0;
//	int cnt = 0;
//
//	while (rmb >0)
//	{
//		cnt++;
//		rmb--;
//		temp++;
//		if (temp == 2)
//		{
//			cnt++;
//			temp = 1;
//		}
//
//	}
//
//	printf("%d ", cnt);
//
//
//	return 0;
////}
//
//int main()
//{
//	int arr[10][10] = { 0 };
//	int flag = 1;
//	    int n = 0;
//		scanf("%d", &n);
//		for (int i = 0; i < n; i++)
//		{
//			for (int j = 0; j < n; j++)
//			{
//				scanf("%d", &arr[i][j]);
//			}
//        }
//
//
//		for (int i = 1; i < n; i++)
//		{
//			for (int j = 0; j < i; j++)
//			{
//				if (arr[i][j] != 0)
//				{
//					flag = 0;
//					break;
//
//				}
//			}
//		}
//
//		if (flag)
//			printf("YES\n");
//		else
//			printf("NO\n");
//
//
//
//
//
//
//	return 0;
//}

int main()
{
	int n = 0;
	int m = 0;
	scanf("%d %d", &n, &m);
	int arr[10][10] = { 0 };
	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < m; j++)
		{
			scanf("%d", &arr[i][j]);
		}
	}
	int temp = 0;
	int flag = 1;

	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < m; j++)
		{
			scanf("%d", &temp);
			if (temp != arr[i][j])
			{  
				flag = 0;
				break;
			}
		}

	}
	if (flag)
		printf("YES\n");
	else
		printf("NO\n");


	return 0;
}